const tagsView = {
     state: {
         //tags数组
        tags:[],
        // 高亮key
        tabActiveKey: ''
     },
     mutations: {
        PUSH_STAGE(state,val){
            //如果等于-1说明tabs不存在那么插入，否则什么都不做
            //findindex找角标，循环判断一下，如果等于那么就代表有相同的，就不必添加，如果找不到那就是-1.就添加
            let result = state.tags.findIndex(item => item.name === val.name)
            result === -1 ? state.tags.push(val) : ''
          },
          ACTIVE_KEY(state, val) {
            let existTab = state.tags.find(tab => tab.path == val.path)
            if (existTab) {
              state.tabActiveKey = existTab.path;
            } else {
              pushtags(existTab)
              state.tabActiveKey = val.path;
            }
          },
          //关闭标签
          CLOSE_TAB(state, val) {
            //同上，找角标，然后用角标的位置对应删除一位。splice：这是数组的删除方法
            let result = state.tags.findIndex(item => item.path === val)
            state.tags.splice(result, 1)
        },
        //关闭所有tagsview标签
          CLEAR_TAGS_VIEW(state,val){
            //清空数组
            state.tags=[]
            //跳转到首页,val接受传过来的当前路由
            if(val !== "/index"){
              router.push({path:"/index"})
            }
          },
     },
     actions: {
      pushtags({ commit }, value) {
        commit('PUSH_STAGE', value)
      },
      activeKey({ commit }, value) {
        commit('ACTIVE_KEY', value)
      },
      closeTab({ commit, state }, value) {
        return new Promise(resolve => {
        commit('CLOSE_TAB', value)
        resolve(resolve({
          tags: [...state.tags],
        }))
      })
      },
      cleartagsview({ commit }, value) {
        commit('CLEAR_TAGS_VIEW', value)
      },
      // delVisitedView({ commit, state }, view) {
      //   return new Promise(resolve => {
      //     commit('DEL_VISITED_VIEW', view)
      //     resolve([...state.visitedViews])
      //   })
      // },
     },
   
 
}
export default tagsView